// ===========   File : ArryStack.h =============//

#ifndef __ARRYSTACK_H__
#define __ARRYSTACK_H__




/*****************************************************************************
 *                         参数定义
****************************************************************************/

/* 基于数组实现的栈 */
typedef struct {
    int *data;          /* 数组首地址 */
    int size;           /* 数组长度 */
}ArryStack;


/*****************************************************************************
 *                         PUBLIC FUNCTION
****************************************************************************/

/* Create a stack */
ArryStack *NewArryStack(void);

/* Delete a stack */
void DelArryStack(ArryStack *stack);

/* Get the length of the stack */
int ArryStackSize(ArryStack *stack);

/* Determine whether the stack is empty */
_Bool ArryStackIsEmpty(ArryStack *stack);

/* Enter the stack */
void ArryStackPush(ArryStack *stack,int num);

/* Access elements at the top of the stack */
int ArryStackPeek(ArryStack *stack);

/* Out of the stack */
int ArryStackPop(ArryStack *stack);

/* Printf the status of stack */
void ArryStackPrintf(ArryStack *stack);

#endif




